package com.ruoyi.post.mapper;

import java.util.List;
import com.ruoyi.post.domain.PostBasicInfo;

/**
 * 帖子管理Mapper接口
 * 
 * @author 区嘉盛
 * @date 2025-06-10
 */
public interface PostBasicInfoMapper 
{
    /**
     * 查询帖子管理
     * 
     * @param id 帖子管理主键
     * @return 帖子管理
     */
    public PostBasicInfo selectPostBasicInfoById(Long id);

    /**
     * 查询帖子管理列表
     * 
     * @param postBasicInfo 帖子管理
     * @return 帖子管理集合
     */
    public List<PostBasicInfo> selectPostBasicInfoList(PostBasicInfo postBasicInfo);

    /**
     * 新增帖子管理
     * 
     * @param postBasicInfo 帖子管理
     * @return 结果
     */
    public int insertPostBasicInfo(PostBasicInfo postBasicInfo);

    /**
     * 修改帖子管理
     * 
     * @param postBasicInfo 帖子管理
     * @return 结果
     */
    public int updatePostBasicInfo(PostBasicInfo postBasicInfo);

    /**
     * 删除帖子管理
     * 
     * @param id 帖子管理主键
     * @return 结果
     */
    public int deletePostBasicInfoById(Long id);

    /**
     * 批量删除帖子管理
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePostBasicInfoByIds(Long[] ids);

    /**
     * 根据帖子编码获取最新帖子
     *
     * @param postCode 帖子编码
     * @return 帖子信息
     */
    public PostBasicInfo getNewPost(String postCode);

    /**
     * 查询用户发布的笔记列表
     *
     * @param userId 用户ID
     * @return 笔记列表
     */
    List<PostBasicInfo> getNotes(Long userId);

    /**
     * 查询用户收藏的帖子列表
     *
     * @param userId 用户ID
     * @return 收藏的帖子列表
     */
    List<PostBasicInfo> getFavorite(Long userId);

    /**
     * 查询用户点赞的帖子列表
     *
     * @param userId 用户ID
     * @return 点赞的帖子列表
     */
    List<PostBasicInfo> getLikes(Long userId);

    /**
     * 获取用户点赞的帖子ID列表
     *
     * @param userId 用户ID
     * @return 点赞的帖子ID列表
     */
    List<Integer> getUserLikedPostIds(Long userId);

    /**
     * 获取用户收藏的帖子ID列表
     *
     * @param userId 用户ID
     * @return 收藏的帖子ID列表
     */
    List<Integer> getUserFavoritePostIds(Long userId);

    /**
     * 根据帖子标题模糊查询帖子列表
     *
     * @param postTitle 帖子标题
     * @return 帖子列表
     */
    List<PostBasicInfo> getPostByPostTitle(String postTitle);

    /**
     * 获取用户的帖子草稿
     *
     * @param authorUserId 作者用户ID
     * @return 帖子草稿信息
     */
    PostBasicInfo getPostDraft(Long authorUserId);
}
